package com.anytron.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * @author anytron
 * 注解方式添加监控
 */
@Target({ElementType.ANNOTATION_TYPE, ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
public @interface TimedCount {
	/**
	 * 自定义监控名称,不写则使用aop默认名称
	 * @return
	 */
	String value() default "";
	/**
	 * 添加额外tags,成对添加
	 * @return
	 */
	String[] extraTags() default {};
	/**
	 * 是否关闭timed监控,默认不关闭
	 * @return
	 */
	boolean closeTimed() default false;
	/**
	 * 是否关闭count监控,默认不关闭
	 * @return
	 */
	boolean closeCount() default false;
	/**
	 * 是否仅记录异常情况下的count,只有在closeCount为false情况下有效,默认否
	 * @return
	 */
	boolean isJustErrorCount() default false;
	
}
